From 01ace4a124a8f28d4892b5f3194e00c43b8c12e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 18 Jul 2010 11:38:19 +0100 Subject: [PATCH] tests: add unit test for mpeg-ts typefinding bug See #623663. --- tests/check/gst/typefindfunctions.c | 45 ++++++++++++++++++++++++---- tests/files/623663.mts | Bin 0 -> 4000 bytes 2 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 tests/files/623663.mts diff --git a/tests/check/gst/typefindfunctions.c b/tests/check/gst/typefindfunctions.c index 4a2ee19243..cec594393d 100644 --- a/tests/check/gst/typefindfunctions.c +++ b/tests/check/gst/typefindfunctions.c @@ -107,16 +107,16 @@ GST_START_TEST (test_broken_flac_in_ogg) GST_END_TEST; -GST_START_TEST (test_jpeg_not_ac3) +static GstCaps * +typefind_test_file (const gchar * filename) { - const gchar *type; GstBuffer *buf; GError *err = NULL; GstCaps *caps = NULL; gchar *path, *data = NULL; gsize data_len; - path = g_build_filename (GST_TEST_FILES_PATH, "partialframe.mjpeg", NULL); + path = g_build_filename (GST_TEST_FILES_PATH, filename, NULL); GST_LOG ("reading file '%s'", path); if (!g_file_get_contents (path, &data, &data_len, &err)) { g_error ("error loading test file: %s", err->message); @@ -131,13 +131,45 @@ GST_START_TEST (test_jpeg_not_ac3) fail_unless (caps != NULL); GST_LOG ("Found type: %" GST_PTR_FORMAT, caps); + gst_buffer_unref (buf); + g_free (data); + g_free (path); + + return caps; +} + +GST_START_TEST (test_jpeg_not_ac3) +{ + const gchar *type; + GstCaps *caps = NULL; + + caps = typefind_test_file ("partialframe.mjpeg"); type = gst_structure_get_name (gst_caps_get_structure (caps, 0)); fail_unless_equals_string (type, "image/jpeg"); - gst_buffer_unref (buf); gst_caps_unref (caps); - g_free (data); - g_free (path); +} + +GST_END_TEST; + +GST_START_TEST (test_mpegts) +{ + GstStructure *s; + gboolean systemstream = FALSE; + GstCaps *caps = NULL; + gint packetsize = -1; + + caps = typefind_test_file ("623663.mts"); + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "video/mpegts")); + fail_unless (gst_structure_has_field (s, "systemstream")); + fail_unless (gst_structure_get_boolean (s, "systemstream", &systemstream)); + fail_unless_equals_int (systemstream, TRUE); + fail_unless (gst_structure_has_field (s, "packetsize")); + fail_unless (gst_structure_get_int (s, "packetsize", &packetsize)); + fail_unless_equals_int (packetsize, 192); + + gst_caps_unref (caps); } GST_END_TEST; @@ -198,6 +230,7 @@ typefindfunctions_suite (void) tcase_add_test (tc_chain, test_quicktime_mpeg4video); tcase_add_test (tc_chain, test_broken_flac_in_ogg); tcase_add_test (tc_chain, test_jpeg_not_ac3); + tcase_add_test (tc_chain, test_mpegts); tcase_add_test (tc_chain, test_random_data); return s; diff --git a/tests/files/623663.mts b/tests/files/623663.mts new file mode 100644 index 0000000000000000000000000000000000000000..482ddf7f74e9347a9b128959d8b840bf1df717d8 GIT binary patch literal 4000 zcmdUxc{r5YAHdIGn3>2-go&GB4A(7Dq%38ODOKIc8pbH3lRe9k$a=XqZM#EZ?uAYgt0LLiA0v!L2I#EVHo%gc%aoB)GF ztpy-OGZUr|tmRG3v~-zbVme}=b9Gk#U)&}@WQLfNm9Zd7fQO(pevAjIdW`-J2_T{Y zMx93d7x})oG$6?k&9MkV32cyb>#Fki`u}KoK*CqS{=@FCQ~ybQ60rZcb?d*Cx-NYF zo7V05TWxRt$A9I#)$t$A@9*&dt7&=IpH1u5ABKS$?2pX4^@m~7`;R}`A(8XnyRRQD z4+6wBV1H!Rtv{@1isk`0`0It}1AtkL*$I$WggAgCUt0SYLcW*82pl>zXgyK`AIf?!3NjG=A!^X^18PT z)y@X3AVR<*@e;TL_<$B61O-BXRaIiHgTujIz>Dj~^kH#2BK;C@a}tji0aJ)-0RBHC zLShXXF55+#9$D|$&Z}BJ>9-4CR8h!)e3pjUe zYu%DGf)$j~rHLFbN-N3|w>$MxS;}|-MmFt@Hjvt2B)JW7IMw-M)t)Iq`I9KEm8fFt z6k2V)vRbg+8@KUSioR3bN-J7Ua)8x11@p_atSn5oy#|pxdDfa&JPv1phTOEo#5mCw zzW*oGxu>5zYOZ?PLgEd#j}#x7Mlkn-(scoP;@6gGb3R9NxU z`ue>dWnGJl+5P#y^|afjpNQlIFg`R=r!`GQV@8-KFO5jvwbZ!w_3W<|PAx>)9c{my zHVZGjIFvKcrOwOm9q~S8&#vt3alC>%YE6ZNr+3F8bp=>}3hG$wkLMP1!$lrZ2YK1} zIcX|jwI{;-vKf(0swVz@45Q5Hw3w}fWt)GJCsn+9p5K%%->usDD3;!<$$itfqh?QX zp2-K*lE;y3i;bmMr%LbK$PE7KbsxFd)ZV{4h9vn4Qqmu<)Uk5r#dp1M$Wf`E2Wiv6 zsIL4!XK?<#^QleG_r)E0a4?nWMtg00jh|_gSf1{1tK6Ty^X?7ady)H7h(ua8G3)-x zi_E7@{19=u?Lxi$xz4gW^?5{J@9BjT+E;S#8)OtDppU=HzN6X=Slt>h|K?-#Gx5(I ziTNQtk&}wvY9dL^Tq*R#FnXR7FU?(1seG^a#63zoHSqA3-CT?OH2wD1Lyyr7lI_SS zr4&naUC_+ANUP`W4flo&AtyCyow*JU`(T1q|5bKMq@d~A$4uls-J5Ny9UK9kxy;&T zuUqVL(P_5vEVb3=FCkIl78u^D#JokR){)Y)HnJXqL~Z#d>}Ovzxi0hc;Xq^Y6?@q@ zibG6L=fQ2un+dCgEZT7so`LCG24MBo!TfR!Sy>$gw+m}b)JD&1;5R5{*v-=?Hf&l&F#( z#7mkgdViPC$*ouCR|GS*F0`19F29Q-VD6#c#6RbaW76#)h*XC z&TPk3(lw}ka`3{O4HQ8?mXo`u8kvBlc9DjcuU(b%x6^1wLMlZnBu>rv!(+g|5~ zq3rZIFO2!*K+S;sUpd@mi_N1Ed+$W_5+traH9yXz?%%VzTnJd7mtcN{WNNTUpCd60 zT}$vnEH)qVmfRZN_V8;=&dCH$`$U%iWr@QD^?s^{9IOKNZMrnj)$QsaSKt6G?Qb+7J^N|~~NGu9p$n03jz$K5_#q9WP|1s&azJk92lPS$$ literal 0 HcmV?d00001