| | 1845 | static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb, |
| | 1846 | const char *name, const char *tag, |
| | 1847 | int long_style) |
| | 1848 | { |
| | 1849 | int64_t pos = avio_tell(pb); |
| | 1850 | AVDictionaryEntry *t = NULL; |
| | 1851 | uint8_t num; |
| | 1852 | |
| | 1853 | if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) |
| | 1854 | return 0; |
| | 1855 | num = t ? atoi(t->value) : 0; |
| | 1856 | |
| | 1857 | avio_wb32(pb, 4); |
| | 1858 | ffio_wfourcc(pb, name); |
| | 1859 | avio_w8(pb, 0); |
| | 1860 | avio_w8(pb, 0); |
| | 1861 | avio_w8(pb, 0); |
| | 1862 | avio_w8(pb, num); |
| | 1863 | return update_size(pb, pos); |
| | 1864 | } |
| | 1865 | |
| | 1866 | static int mov_write_int8_metadata_no_padding(AVFormatContext *s, AVIOContext *pb, |
| | 1867 | const char *name, const char *tag, |
| | 1868 | int long_style) |
| | 1869 | { |
| | 1870 | int64_t pos = avio_tell(pb); |
| | 1871 | AVDictionaryEntry *t = NULL; |
| | 1872 | uint8_t num; |
| | 1873 | |
| | 1874 | if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) |
| | 1875 | return 0; |
| | 1876 | num = t ? atoi(t->value) : 0; |
| | 1877 | |
| | 1878 | avio_wb32(pb, 1); |
| | 1879 | ffio_wfourcc(pb, name); |
| | 1880 | avio_w8(pb, num); |
| | 1881 | return update_size(pb, pos); |
| | 1882 | } |
| | 1883 | |
| | 1908 | mov_write_int8_metadata(s, pb, "tves", "episode_sort",1); |
| | 1909 | mov_write_int8_metadata(s, pb, "tvsn", "season_number",1); |
| | 1910 | mov_write_int8_metadata_no_padding(s, pb, "stik", "media_type",1); |
| | 1911 | mov_write_int8_metadata_no_padding(s, pb, "hdvd", "hd_video",1); |
| | 1912 | mov_write_int8_metadata_no_padding(s, pb, "pgap", "gapless_playback",1); |